    \section{M\'odulo JugadorFichas}

    \subsection{TAD}

        \begin{tad}{\tadNombre{JugadorFichas}}

        \tadGeneros{jugadorFichas}

        \tadExporta{jugadorFichas, generadores, observadores, $<$}
        
        \tadIgualdadObservacional
            {j}{j'}{jugadorFichas}
            {cantidadFichas($j$) $\igobs$ cantidadFichas($j'$) $\land$ jugador($j$) $\igobs$ jugador($j'$)}

        \tadObservadores
        \tadAlinearFunciones{cantidadFichas}{jugadorFichas}
        \tadOperacion{cantidadFichas}{jugadorFichas}{nat}{}
        \tadOperacion{jugador}{jugadorFichas}{jugador}{}

        \tadGeneradores
        \tadAlinearFunciones{crear}{nat,jugador}
        \tadOperacion{crear}{nat,jugador}{jugadorFichas}{}

        \tadOtrasOperaciones
        \tadAlinearFunciones{$\bullet < \bullet$}{cantidadFichas, cantidadFichas}
        \tadOperacion{$\bullet < \bullet$}{cantidadFichas, cantidadFichas}{bool}{}

        \tadAxiomas[\paratodo{jugador}{j}, \paratodo{nat}{n}, \paratodo{jugadorFichas}{h, i}]
        \tadAlinearAxiomas{cantidadFichas(crear($n, j$)}
	\
        \tadAxioma{cantidadFichas(crear($n, j$)}{$n$}
        \tadAxioma{jugador(crear($n, j$)}{$j$}
        
        \tadAxioma{$h < i$}{ \IF cantidadFichas($h$) $<$ cantidadFichas($i$) THEN
            true
            ELSE {\IF cantidadFichas($i$) $<$ cantidadFichas($h$) 
		  THEN false 
		  ELSE jugador($h$) $<$ jugador($i$)
		  FI}
            FI
        }
        \end{tad}
   

	\subsection{Interfaz}
	
      \begin{interfaces}
	  {JugadorFichas}
	  {}
	  {}
	  {nat, jugador}
	  {JugadorFichas}
	  {jugadorFichas}

	\subsubsection*{Observadores}
	\interfaz{cantidadFichas}{\parametro{in}{j}{jugadorFichas}}{nat}
			{true} 
			{$res \igobs$ cantidadFichas($j$)}
			{\complejidad{$\Theta$}{1}}{}
			{}
			{Devuelve la cantidad de fichas del jugador.}
			
	\interfaz{jugador}{\parametro{in}{j}{jugadorFichas}}{jugador}
			{true} 
			{$res \igobs$ jugador($j$)}
			{\complejidad{$\Theta$}{1}}{}
			{}
			{Devuelve el jugador de j}

	\subsubsection*{Generadores}
	\interfaz{crear}{\parametro{in}{n}{nat}, \parametro{in}{j}{jugador}}{jugadorFichas}
			{true} 
			{$res \igobs$ crear($n, j$)}
			{\complejidad{$\Theta$}{1}}{}
			{}
			{Crea un fichasJugador}

	\subsubsection*{Otras Operaciones}			
	\interfaz{$\bullet < \bullet$}{\parametro{in}{j}{jugadorFichas}, \parametro{in}{j'}{jugadorFichas}}{bool}
			{true} 
			{$res \igobs j < j'$}
			{\complejidad{$\Theta$}{1}}{}
			{}
			{Compara dos fichas jugador.}
\end{interfaces}			

	\subsection{Representaci\'on}
	
	\representacion{fichasJugador}{se representa con}{estrFichas},
	  donde \representacion{estrFichas}{es}{}
	\begin{definicionTupla}
	    \elementoTupla{cantidad}{nat},\\
	    \elementoTupla{jugador}{jugador}\\
	\end{definicionTupla}

	\subsection{Algoritmos}
	
	\begin{codebox}
	\encabezadoFuncion{iCantidadFichas}{\parametro{in}{j}{estrFichas}}{nat}\\
	    \li $res \gets$ \attrib{estrFichas}{cantidad}
	\end{codebox}
	La complejidad es claramente $\Theta(1)$
	
	\begin{codebox}
	\encabezadoFuncion{iJugador}{\parametro{in}{j}{estrFichas}}{nat}\\
	\li $res \gets$ \attrib{estrFichas}{jugador}
	\end{codebox}
	La complejidad es claramente $\Theta(1)$
	
	\begin{codebox}
	\encabezadoFuncion{iCrear}{\parametro{in}{n}{nat}, \parametro{in}{j}{jugador}}{estrFichas}\\
	\li $res \gets$ \tupla{n,j}
	\end{codebox}
	
	
	La complejidad es claramente $\Theta(1)$
	
	\begin{codebox}
	\encabezadoFuncion{$<$}{\parametro{in}{j}{estrFichas}, \parametro{in}{j'}{estrFichas}}{bool}\\
	\li \If \attrib{j}{cantidad} $<$ \attrib{j'}{cantidad}
	\li \Then
		$res \gets true$
	    \Else
	\li     \If \attrib{j'}{cantidad} $<$ \attrib{j}{cantidad}
	\li     \Then
		      $res \gets false$
	\li	\Else
		      $res \gets$ \attrib{j}{jugador} $<$ \attrib{j'}{jugador}
		\End
	    \End
	\end{codebox}
	
	
	La complejidad es claramente $\Theta(1)$
	

    \subsection{Invariante de representaci\'on}
    
    No hay forma de generar un estrFichas que represente un FichasJugador invalido, por lo que el Rep es simplemente true.\\
    
    
    $Rep : estrFichas \longrightarrow bool$\\
    \indent $Rep \equiv true$
    
    \subsection{Funci\'on de abstracci\'on}
    
    $Abs : estrFichas \longrightarrow fichasJugador$\\
    \indent $Abs(e) \equiv j \ / \ cantidadFichas(j) = e.cantidad \land jugador(j) = e.jugador$\\ 



	
  	\subsection{Servicios Utilizados}
